// import { defineConfig } from 'vite'
// import vue from '@vitejs/plugin-vue'
//
// export default defineConfig({
//   plugins: [vue()],
//   resolve: {
//     alias: {
//       '@': '/src'
//     }
//   },
//   // 屏蔽掉console,它与plugins同一级
//   build: {
//     minify: 'terser',
//         terserOptions: {
//       compress: {
//         // 生产环境删除console
//         drop_console: true,
//             // 生产环境删除debugger
//             drop_debugger:true
//       }
//     }
//   },
//
//   // 生产环境相对目录
//   base: './'
//
// })
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// @ts-ignore
import externalGlobals from 'rollup-plugin-external-globals'
// @ts-ignore
import commonjs from "rollup-plugin-commonjs";

// import styleImport from 'vite-plugin-style-import'
// @ts-ignore
// import importToCDN, { autoComplete } from 'vite-plugin-cdn-import'
// @ts-ignore
// import ViteComponents, { ElementPlusResolver } from "vite-plugin-components";
// 路径处理模块
// import path from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    // importToCDN({
    //   modules: [
    //     autoComplete('vue'),
    //     autoComplete('axios'),
    //     autoComplete('lodash'),
    //     // {
    //     //   name:'vue',
    //     //   var:'Vue',
    //     //   path:'https://cdn.jsdelivr.net/npm/vue@next'
    //     // },
    //     // {
    //     //   name:'vuex',
    //     //   var:'Vuex',
    //     //   path:'https://cdn.jsdelivr.net/npm/vuex@4.0.2/dist/vuex.global.prod.js'
    //     // },
    //     // {
    //     //   name:'vue-router',
    //     //   var:'VueRouter',
    //     //   path:'https://cdn.jsdelivr.net/npm/vue-router@4.0.10/dist/vue-router.global.prod.js'
    //     // },
    //   ]
    // }),
    // ViteComponents({
    //     customComponentResolvers: [ElementPlusResolver({ importStyle: true })],
    // }),
  ],
  resolve: {
    // 定义别名
    alias: {
      '@': '/src'
    }
  },
  css: {
    preprocessorOptions: {
      less: {
        javascriptEnabled: true
      }
    }
  },
  build: {
    target: 'modules',
    outDir: 'dist', // 指定输出路径
    assetsDir: 'static', // 指定生成静态资源的存放路径
    minify: 'terser', // 混淆器,terser构建后文件体积更小
    sourcemap: false,
    terserOptions: {
      compress: {
        drop_console: true, // 生产环境移除console
        drop_debugger: true // 生产环境移除debugger
      }
    },
    rollupOptions: {
      external: ['vue','element-plus','echarts'], // 注意看这里
      plugins:[
        commonjs(),
        externalGlobals({
          vue: "Vue",
          'element-plus': 'ElementPlus',
          echarts: 'echarts',
        }),
      ],
      output: {
        manualChunks (id) {
          if (id.includes('node_modules')) {
            return id.toString().split('node_modules/')[1].split('/')[0].toString()
          }
        }
      }
    }
  },
  // server: {
  //   open: true, // 是否在浏览器打开
  //   port: 8088, // 端口号
  //   host: '127.0.0.1'
  // },
  // // 引入第三方配置
  // optimizeDeps: {
  //   include: []
  // }
})